﻿Imports AccesoDatos
Public Class MultiMovimiento

#Region "Stephan"

    ''' <summary>
    ''' Ingresa una nuevo movimiento a la base de datos
    ''' </summary>
    ''' <param name="p_codCuentaContable">codigo de la cuenta contable</param>
    ''' <param name="p_fecha">fecha del movimiento</param>
    ''' <param name="p_monto">monto del movimiento</param>
    ''' <param name="p_tipoMovimiento">tipo de movimiento</param>
    ''' <remarks>Creador por: Stephan Endres, Fecha: 20/06/2010, Modificado: 20/06/2010.</remarks>
    Shared Sub agregar(ByVal p_codCuentaContable As String, ByVal p_fecha As Date, ByVal p_monto As Double, ByVal p_tipoMovimiento As String)
        Dim sql As String
        Dim pars(3) As Parametro
        sql = "insert into t_movimiento(codigo_cuenta, fecha, monto, tipo) values (p_codCuentaContable, p_fecha, p_monto, p_tipoMovimiento)"

        pars(0) = New Parametro("p_codCuentaContable", p_codCuentaContable)
        pars(1) = New Parametro("p_fecha", p_fecha)
        pars(2) = New Parametro("p_monto", p_monto)
        pars(3) = New Parametro("p_tipoMovimiento", p_tipoMovimiento)

        g_access.ejecutarSQL(sql, pars)

    End Sub

    ''' <summary>
    ''' Realiza una busqueda de todos los movimientos de una cuenta contable
    ''' </summary>
    ''' <returns>Lista de movimientos</returns>
    ''' <remarks>Creador por: Stephan Endres, Fecha: 20/06/2010, Modificado: 20/06/2010.</remarks>
    Shared Function buscarMovimientos(ByVal p_codigoCuentaContable) As List(Of Movimiento)
        Dim drMovimiento As IDataReader
        Dim pars(0) As Parametro
        Dim listaCuentas As New List(Of Movimiento)
        Dim sql As String

        sql = "SELECT * FROM t_movimiento WHERE codigo_cuenta = p_codigoCuentaContable and eliminado = 0"
        pars(0) = New AccesoDatos.Parametro("p_codigoCuentaContable", p_codigoCuentaContable)

        drMovimiento = g_access.ejecutarQuery(sql, pars)

        While drMovimiento.Read()
            listaCuentas.Add(cargarMovimiento(drMovimiento))
        End While

        Return listaCuentas
    End Function

    ''' <summary>
    ''' Por medio de un IDataReader carga un objeto de movimiento
    ''' </summary>
    ''' <param name="dr">Un data reader con datos de un movimiento</param>
    ''' <returns>Movimiento</returns>
    ''' <remarks>Creador por: Stephan Endres, Fecha: 20/06/2010, Modificado: 20/06/2010.</remarks>
    Public Shared Function cargarMovimiento(ByVal dr As IDataReader) As Movimiento

        Dim objMovimiento As Movimiento
        With dr
            objMovimiento = New Movimiento(CInt(.Item("codigo_movimiento")), CInt(.Item("codigo_cuenta")), CDate(.Item("fecha")), CDbl(.Item("monto")), CStr(.Item("tipo")), CInt(.Item("eliminado")))
        End With
        Return objMovimiento

    End Function

#End Region

End Class
